package org.itboys.core.util;

import java.math.BigDecimal;




/**
 * 包名：com.hz.sunday.chint.utils
 * 作者 : 江雄
 * Email: empty90911@126.com
 * 时间：2015年9月23日 下午2:05:43 
 * 描述:修改，返回距离单位，公里
 *
 */
public class DistanceUtils {

    /**
     * 
     * @param lat1 //经度1
     * @param lng1 //唯独1
     * @param lat2 //经度2
     * @param lng2 //唯独2
     * @return
     */
	public static double GetDistance(double lat1, double lng1, double lat2, double lng2)
	{
		double R = 6371;
        double distance = 0.0;
        double dLat = (lat2 - lat1) * Math.PI / 180;
        double dLon = (lng2 - lng1) * Math.PI / 180;
        double a = Math.sin(dLat / 2) * Math.sin(dLat / 2)
                + Math.cos(lat1 * Math.PI / 180)
                * Math.cos(lat2 * Math.PI / 180) * Math.sin(dLon / 2)
                * Math.sin(dLon / 2);
        distance = (2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a))) * R;
        return new BigDecimal(distance).setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue(); 
	}
	public static void main(String[] args) {
		System.out.println(GetDistance(30.283297,120.139908,30.284341,120.139836));	
	}
	
}
